# image_loader.py
import cv2
from display import display_image


def load_and_display_image(image_path, window_title_base, channel_index=0):
    """
    加载图像，并显示原始图像和指定的单通道图像。

    :param image_path: 图像文件的路径
    :param window_title_base: 基础窗口标题
    :param channel_index: 要提取的颜色通道索引（0-红色，1-绿色，2-蓝色）
    """
    # 加载图像
    image = cv2.imread(image_path, cv2.IMREAD_COLOR)

    # 检查图像是否正确加载
    if image is None:
        print(f"Error: Unable to load image at {image_path}")
        return

    # 分离图像通道
    channels = cv2.split(image)
    single_channel_image = channels[channel_index]

    # 显示原始图像
    display_image(f"{window_title_base} (Original)", image)

    # 显示单通道图像
    display_image(f"{window_title_base} (Single Channel {['Red', 'Green', 'Blue'][channel_index]})",
                  single_channel_image)


def main():
    # 图像路径和窗口标题基础
    image_path = '1.jpg'  # 图像路径
    window_title_base = 'Loaded Image'

    # 选择要提取的通道，例如：0 为红色通道，1 为绿色通道，2 为蓝色通道
    channel_index = 0  # 选择通道

    # 调用函数加载和显示图像
    load_and_display_image(image_path, window_title_base, channel_index)


if __name__ == "__main__":
    main()